<?php
/**
 * Created by PhpStorm.
 * User: Kevin
 * Date: 2018/11/8
 * Time: 9:48
 */
namespace app\api\controller;
use think\Db;
class My extends Common{
    /**
     * 获取个人信息
     * @param $user_id 用户id
     * @param $time 时间
     * @param $value 加密值
     * @return \think\response\Json
     */
     public function myInformation(){
         extract(input());
         $auth = $this->checkAll($user_id,$time,$value,$reqKey);
         if(!$auth){
             return json(['status'=>301,'msg'=>'Token失效！请重新登录！']);
         }
         $data = Db::name('u_user')
             ->where('user_id',$user_id)
             ->field('user_id,user_username,user_image')
             ->find();
         return json(['status'=>200,'msg'=>$data]);
     }

    /**
     * 修改个人信息
     * @param $user_username 用户名
     * @param $user_image 用户头像
     * @param $user_id 用户id
     * @param $time 时间
     * @param $value 加密值
     * @return \think\response\Json
     */
     public function updateMyInformation(){
         extract(input());
         $auth = $this->checkAll($user_id,$time,$value,$reqKey);
         if(!$auth){
             return json(['status'=>301,'msg'=>'Token失效！请重新登录！']);
         }
         $param = [
             'user_username'=>$user_username,
             'user_image'=>$user_image,
             'user_update_time'=>date('Y-m-d H:i:s')
         ];
         $res = Db::name('u_user')
             ->where('user_id',$user_id)
             ->update($param);
         if($res){
             return json(['status'=>200,'msg'=>'修改成功']);
         }else{
             return json(['status'=>100,'msg'=>'修改失败']);
         }
     }

    /**
     * 用户认证页面展示信息
     * @param $user_id 用户id
     * @param $time 时间
     * @param $value 加密值
     * @return \think\response\Json
     */
     public function userRenzheng(){
         extract(input());
         $auth = $this->checkAll($user_id,$time,$value,$reqKey);
         if(!$auth){
             return json(['status'=>301,'msg'=>'Token失效！请重新登录！']);
         }
         $data = Db::name('u_user')
             ->where('user_id',$user_id)
             ->field('user_id,user_rel_name,user_id_number,user_auth_status')
             ->find();
         return json(['status'=>200,'msg'=>$data]);
     }

    /**
     * 用户认证提交认证信息
     * @param $user_rel_name 真实姓名
     * @param $user_id_number 身份证号
     * @param $user_id 用户id
     * @param $time 时间
     * @param $value 加密值
     * @return \think\response\Json
     */
     public function insertRenZheng(){
         extract(input());
         $auth = $this->checkAll($user_id,$time,$value,$reqKey);
         if(!$auth){
             return json(['status'=>301,'msg'=>'Token失效！请重新登录！']);
         }
         $param = [
             'user_rel_name'=>$user_rel_name,
             'user_id_number'=>$user_id_number,
             'user_auth_status'=>2,
             'user_update_time'=>date('Y-m-d H:i:s')
         ];
         $res = Db::name('u_user')
             ->where('user_id',$user_id)
             ->update($param);
         if($res){
             return json(['status'=>200,'msg'=>'认证成功']);
         }else{
             return json(['status'=>100,'msg'=>'认证失败']);
         }
     }

    /**
     * 我的订单
     * @param $page 页码
     * @param $user_id 用户id
     * @param $time 时间
     * @param $value 加密值
     * @return \think\response\Json
     */
     public function myOrder(){
         extract(input());
         $auth = $this->checkAll($user_id,$time,$value,$reqKey);
         if(!$auth){
             return json(['status'=>301,'msg'=>'Token失效！请重新登录！']);
         }
         $data = Db::name('order o')
             ->join('hotel h','o.hotel_id = h.h_id','left')
             ->join('room r','o.room_id = r.r_id','left')
             ->where('user_id',$user_id)
             ->field('o_id,user_id,room_id,hotel_id,h_name,r_name,order_num,r_bed,r_breakfast,r_wifi,check_time,leave_time,how_rom,how_night,o.create_time,pay_price,order_status,is_consume,par_time,is_cash')
             ->page($page,10)
             ->order('create_time desc')
             ->select();
         return json(['status'=>200,'msg'=>$data]);
     }

    /**
     * 订单详情
     * @param $o_id 订单id
     * @param $user_id 用户id
     * @param $time 时间
     * @param $value 加密值
     * @return \think\response\Json
     */
    public function myOrderDetail(){
        extract(input());
        $auth = $this->checkAll($user_id,$time,$value,$reqKey);
        if(!$auth){
            return json(['status'=>301,'msg'=>'Token失效！请重新登录！']);
        }
        $data = Db::name('order o')
            ->join('hotel h','o.hotel_id = h.h_id','left')
            ->join('room r','o.room_id = r.r_id','left')
            ->where(['user_id'=>$user_id,'o_id'=>$o_id])
            ->find();
        return json(['status'=>200,'msg'=>$data]);
    }

    /**
     * 删除订单
     * @param $o_id 订单id
     * @param $user_id 用户id
     * @param $time 时间
     * @param $value 加密值
     * @return \think\response\Json
     */
    public function delOrder(){
        extract(input());
        $auth = $this->checkAll($user_id,$time,$value,$reqKey);
        if(!$auth){
            return json(['status'=>301,'msg'=>'Token失效！请重新登录！']);
        }
        $res = Db::name('order')
            ->where(['o_id'=>$o_id])
            ->delete();
        if($res){
            return json(['status'=>200,'msg'=>'删除成功']);
        }else{
            return json(['status'=>100,'msg'=>'删除失败']);
        }
    }

    /**
     * 我的收藏
     * @param $page 页码
     * @param $user_id 用户id
     * @param $time 时间
     * @param $value 加密值
     * @return \think\response\Json
     */
    public function myCollect(){
        extract(input());
        $auth = $this->checkAll($user_id,$time,$value,$reqKey);
        if(!$auth){
            return json(['status'=>301,'msg'=>'Token失效！请重新登录！']);
        }
        $data = Db::name('my_collect c')
            ->join('hotel h','c.hotel_id = h.h_id','left')
            ->join('hotel_type t','h.h_type = t.type_id','left')
            ->where('user_id',$user_id)
            ->field('collect_id,hotel_id,h_name,h_level,type_name,h_address,h_min_price,h_log')
            ->page($page,10)
            ->order('create_time desc')
            ->select();
        return json(['status'=>200,'msg'=>$data]);

    }
    /**
     * 删除收藏
     * @param $collect_id 收藏id
     * @param $user_id 用户id
     * @param $time 时间
     * @param $value 加密值
     * @return \think\response\Json
     */
    public function delCollect(){
        extract(input());
        $auth = $this->checkAll($user_id,$time,$value,$reqKey);
        if(!$auth){
            return json(['status'=>301,'msg'=>'Token失效！请重新登录！']);
        }
        $res = Db::name('my_collect')
            ->where(['collect_id'=>$collect_id])
            ->delete();
        if($res){
            return json(['status'=>200,'msg'=>'删除成功']);
        }else{
            return json(['status'=>100,'msg'=>'删除失败']);
        }
    }
}